/*******************************************************************************
 *    系统名称   : 约汗乐动力接口/后台管理系统
 *    客户             : 约汗乐动力
 *    文件名        ： GenerateDateUtil.java
 *              (C) Copyright 博智乐创 Corporation 2015
 *               All Rights Reserved.
 *              http://www.bozlc.com
 * *****************************************************************************
 *    注意： 本内容仅限于约汗乐动力软件公司内部使用，未经许可禁止转发
 ******************************************************************************/
package com.xiake.utils;

import java.util.Calendar;
import java.util.Date;

// TODO: Auto-generated Javadoc
/**
 * 重复利用已经创建的Date对象 util.
 */
public class GenerateDateUtil {
	
	/** The date pool. */
	private static LiveAccess<Date> datePool ;
	
	/** The ttl in millis. */
	private static int ttlInMillis = 5 * 1000 ;// 5 秒

	/**
	 * 获得当前时间 .
	 *
	 * @return the current date
	 */
	public static Date getCurrentDate() {
		
		if(datePool == null) 
			datePool = new LiveAccess<Date>(ttlInMillis, new Date()) ;
		Date date = datePool.getElement() ;
		if(date == null) {
			date = new Date() ;
			datePool = new LiveAccess<Date>(ttlInMillis, date) ;
		}
		
		return date ;
	}
	
	/**
	 * 获得当前时间 .
	 *
	 * @return the current time
	 */
	public static long getCurrentTime() {
		
		return getCurrentDate().getTime() ;
	}
	
	/**
	 * 获得当前年.
	 *
	 * @return the current year
	 */
	public static int getCurrentYear() {
		Date date = getCurrentDate() ;
		Calendar c = Calendar.getInstance() ;
		c.setTime(date) ;
		return c.get(Calendar.YEAR) ;
	}
	
	/**
	 * 获得当前月.
	 *
	 * @return the current month
	 */
	public static int getCurrentMonth() {
		Date date = getCurrentDate() ;
		Calendar c = Calendar.getInstance() ;
		c.setTime(date) ;
		return c.get(Calendar.MONTH) ;
	}

}
